﻿package motor.grafico {
	
	import flash.display.*;
	import motor.grafico.armas.*;
	
	public class Graficos {
	
		private var graficos:Array;
		
		private var escenario:Sprite;
		
		static private var instancia:Graficos = null;	
		
		private var currentStage:Stage;
		
		
		
		
		private var bitmapDataExplosion1:BitmapData = null;
		
		
		
		
		public function Graficos ()
		{			
			graficos=new Array ();
		}
		
		public function setEscenario (unEscenario:Sprite)
		{
			escenario=unEscenario;
		}
		
		public function getEscenario ():Sprite
		{
			return escenario;
		}
		
		public static function getInstancia ()
		{
			if (instancia==null)
			{
				instancia = new Graficos();
			}
			return instancia;
		}
		
		public function crearGraficoTest():Grafico
		{
			if (Math.random()<=0.5)
			{
				var grafico:Grafico = new Grafico(escenario);
				graficos.push(grafico);
				return grafico;
			}
			else
			{				
				return crearGraficoExplosionPrueba();
			}
		}
		
		
		public function crearGraficoArmaPrueba():Grafico
		{
			var grafico:Grafico = new ArmaPrueba(escenario);
			graficos.push(grafico);
			return grafico;
		}
		
		public function crearGraficoExplosionPrueba():Grafico
		{
			var grafico:Grafico = new GraficoAnimado(escenario);
			graficos.push(grafico);
			return grafico;
		}
		
		public function crearGraficoTorpedo(torpedoTipo:int):Grafico
		{
			return new TorpedoA(escenario);
		}
		
		public function setStage(unStage:Stage)
		{
			currentStage = unStage;
		}	
		
		public function getStage():Stage
		{
			return currentStage;
		}
		
		
		public function destroyGrafico(unGrafico:Grafico):void
		{
			//TODO
			trace ("TODO: Graficos.destroyGrafico");
		}
		
		//BITMAP_DATA!------------------------------------------------------------------------------------------------
		
		public function getBitmapDataExplosion1 ():BitmapData
		{
			if (bitmapDataExplosion1==null)
			{
				bitmapDataExplosion1 = new BDExplosion1(1,1);
			}
			return bitmapDataExplosion1;
		}
	
	}
}